Conventional bar code readers consist of an optical scanning portion and a portion to decode the optical data. The scanning portion contains an optoelectronic device which senses the reflectivity of the bar code label and produces a digital video signal whose pulse widths correspond to the widths of the bars and spaces scanned. The decoding portion monitors the video signal, measures the pulse widths, and translates the measurements into the characters encoded in the label.
Bar code readers can be divided into two types. One type incorporates a "digital" scanner. In this type of reader, the optoelectronic portion of the reader is physically separate from the decoding function. The scanner portion is called "digital" because it emits only the digital video signal, and no processing of the video data it collects is done inside the scanner itself. Rather, the decoding function is performed by hardware and software located in a separate component. That component can be a dedicated decoder box that in turn is connected to a host computer system. Alternatively, the decoding component can reside in a host system that performs other functions as well, such as a data entry terminal, a computer, or a cash register.
The other type of reader is generally referred to as a "smart scanner". In this type of reader, the hardware and software necessary to perform the decoding function are incorporated into the scanner itself, along with the optoelectronic section. The output of the scanner is decoded data, which is transmitted to the host system using a standard I/O interface, relieving the host of the decoding task.
In both types of readers, the term scanner applies to bar code wands, slot readers, moving beam laser scanners, CCD scanners, and others.
One shortcoming of conventional smart scanners is that they only provide data that has already been processed by the smart portion of the scanner, and the host does not have access to the raw data from the optical section. For some applications, such as decoding with non-standard decoding algorithms not available in conventional bar code readers, or analysis of label printing characteristics, the host needs to be able to process the optical data from the digital portion of the scanner. With a conventional smart scanner, the host can acquire only decoded bar code data characters through its interface to the smart scanner. The host can access neither the digitized video signal corresponding to the bars and spaces of a bar code label during a scan, nor the array of time intervals measured from transitions of that video signal. The program in the smart scanner which processes the raw data is generally fixed in ROM, offering little flexibility for the host system to customize its functions.
For applications that require access to either the unprocessed optical data or the decoded data from bar code scans, or both, the host system can be designed to receive input from a digital scanner as well as a smart scanner. However, this requires the duplication in the host system of the time interval measurement hardware that exists in the smart scanner, and also requires the host system to perform the data acquisition task. The time measurement hardware adds cost to the host system, and the acquisition function at least partially occupies the host's processor during each scan.
An object of the invention is to avoid replication in the host system of the time interval measurement hardware and data acquisition capability that exist in a smart scanner, merely to allow the host system to use a digital scanner and measure its digitized video output signal. Eliminating the measurement hardware from the host system reduces its cost, and offloading the acquisition task saves the host's CPU time.
Another object of the invention is to provide a bar code reader that not only contains all of the necessary hardware to acquire time interval data and decode that data into characters, but allows the host system to which it is connected the flexibility to access (a) the digitized video signal, (b) the array of time intervals from a scan, and (c) the decoded data.
These and other advantages are provided by the bar code scanner of the invention which comprises a smart scanner with a processor that can be configured to send to the host either (a) the digitized video signal from the scanner's optical section, (b) the unprocessed time interval data measured from the transitions of the video signal, (c) the decoded data message, or (d) the combination of (b) and (c).
Configuration (a) is called feedthrough mode, because the processor in the smart scanner merely feeds the video signal through to the I/O interface without performing any time interval measurement or decoding. Configuration (b) is called element time interval dump mode, or ETI dump mode. In this mode the bar and space elements of the bar code label being scanned are measured as time intervals between transitions of the video signal. The element time intervals, ETIs, are collected in an array by the smart scanner's processor, and transmitted in a convenient format to the host. Configuration (c) is the standard output mode of a smart scanner. Configuration (d) combines the outputs of modes (b) and (c) by first transmitting decoded data from a scan, then the ETIs that were measured in the scan. These configurations can be selected by means of commands to the smart scanner, issued from the host through the I/O interface. Alternatively, configuration selections can be made by the operator by scanning a bar code configuration menu.